Occasionally, it may be desirable or necessary for firmware or the basic input/output system (“BIOS”) of a computer to install a file into the operating system of the computer. Such an installation may be performed to ensure that, for whatever reason, the current operating system executing on the computer includes the file.
Currently, when the BIOS installs a file into the operating system, the BIOS does so by writing the file to a particular location in the file system provided by the operating system using a driver associated with the file system. For example, NTFS (new technology file system) is the standard file system supported by the Microsoft Windows NT operating systems (and all later versions) from Microsoft Corporation of Redmond, Wash. For the BIOS to install a file into the NTFS file system, the BIOS would need to include an embedded NTFS driver. The NTFS driver would parse the NTFS file system and place the file on a hard-disk partition in the desired location.
Unfortunately, this approach has many disadvantages. Adding a file system driver into the BIOS increases the size of the BIOS. Also, maintaining a file system driver can be burdensome, as the format or specification of the file system driver may not be published or otherwise made available. Additionally, the above approach runs the risk of disabling the functionality of the operating system for the current session, because adding a file in this manner may result in a change in the checksums associated with data durably stored on disk, which may be interpreted by the operating system as a problem, and subsequently handled as such.
Another disadvantage is that it may be costly to license, from third party companies, the technology stack necessary for the BIOS to write to the file system provided by an operating system. Still yet another problem is that the file system provided by the operating system may be encrypted. While the operating system may store the necessary keys to access the file system, other computing entities outside of the operating system would not have access to those keys, and would thus be required to communicate with the operating system to write data to the file system, which may be burdensome and/or expensive as explained above.